/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controlador.Service.Produccion;

/**
 *
 * @author Nadhia
 */
import Controlador.Bean.Log.Log;
import Controlador.Bean.Produccion.Receta;
import Data.config.SessionFac;
import gui.General.Main;
import java.util.Date;
import org.apache.ibatis.session.SqlSession;

public class ServicioReceta {
    java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        Date fecha= new Date();
        String f=sdf.format(fecha);
    public void guardar(Receta receta) throws Exception{
            SqlSession sqlsession = SessionFac.SessionFactory().openSession();
            receta.setIdReceta(obtenerIdSiguiente(receta.getIdReceta(), sqlsession));
            sqlsession.insert("Data.Produccion.ServicioReceta.guardar", receta);
            sqlsession.commit();
            sqlsession.close();
            Log.setInstancia(Main.usu.getIdEmpleadoAdm(),"PRASPRPD","Se creó una receta",f );
        
    }
    
    public String obtenerIdSiguiente(String IdReceta, SqlSession sqlsession){
        
        String id= (String)sqlsession.selectOne("Data.Produccion.ServicioReceta.getNextCodigo");
   
        
        if(id!=null){
        int cod = Integer.parseInt(id.substring(3)) + 1;
        
        String defecto= "000000";
        String temp= defecto.substring(0, defecto.length()-String.valueOf(cod).length()).concat(String.valueOf(cod));

        id = (id.substring(0,3).concat(temp));}
        
        else{
        id = "REC000001"; 
        
        }
              
        
        return id;
    }
//    public String obtenerIdSiguiente(String idTipoProducto, SqlSession sqlsession){
//        String id;
//        ServicioTipoProducto stp =  new ServicioTipoProducto();
//        String Nombre = stp.obtenerNombre(idTipoProducto, sqlsession).substring(10,13);
//        HashMap<String,Long> MId;
//        Long MaxId = (MId=seleccionarMaxId(sqlsession, Nombre))!=null ? MId.get("idproducto"):Long.parseLong("0");
//        MaxId++;
//        id = "" + Nombre.toUpperCase() + "-" + MaxId;
//        return id;
//    }
//    
    
    public void cambiarEsRe(String Id){
        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()) {
            sqlsession.update("Data.Produccion.ServicioReceta.cambiarEsRe", Id);
            sqlsession.commit();
            sqlsession.close();
            Log.setInstancia(Main.usu.getIdEmpleadoAdm(),"PRASPRPD","Se canceló la creación de una receta",f );
        }
    }
    
    public void cambiarEsReA(String Id){
        try (SqlSession sqlsession = SessionFac.SessionFactory().openSession()) {
            sqlsession.update("Data.Produccion.ServicioReceta.cambiarEsReA", Id);
            sqlsession.commit();
            sqlsession.close();
            Log.setInstancia(Main.usu.getIdEmpleadoAdm(),"PRASPRPD","Se eliminó una receta guardada",f );
        }
    }

    String SeleccionarMaximoid() {
                       String id;
       SqlSession sqlsession = SessionFac.SessionFactory().openSession();
       id = (String)sqlsession.selectOne("Data.Produccion.ServicioReceta.getNextCodigo");
       sqlsession.close();
       return id;
    }
}
